# 使用OpenJDK 8作为基础镜像（使用更新的Alpine版本）
FROM openjdk:8-jdk-alpine


# 设置工作目录
WORKDIR /mzit

# 设置环境变量
ENV LANG=C.UTF-8 \
    LC_ALL=C.UTF-8 \
    TZ=Asia/Shanghai

# 配置国内镜像源以提高下载速度
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

# 更新包管理器并安装必要的软件包
RUN apk update && apk add --no-cache \
    # 安装LibreOffice
    libreoffice \
    # 安装中文字体支持
    fontconfig \
    ttf-dejavu \
    # 安装中文字体
    font-adobe-100dpi \
    # 安装其他必要工具
    bash \
    curl \
    wget \
    && rm -rf /var/cache/apk/*

# 创建字体目录
RUN mkdir -p /usr/share/fonts/chinese

# 复制本地中文字体文件
COPY fonts/ /usr/share/fonts/chinese/

# 更新字体缓存
RUN fc-cache -fv

# 创建LibreOffice用户目录
RUN mkdir -p /mzit/.config/libreoffice

# 设置LibreOffice配置
RUN echo '<?xml version="1.0" encoding="UTF-8"?>' > /mzit/.config/libreoffice/registrymodifications.xcu && \
    echo '<oor:items xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' >> /mzit/.config/libreoffice/registrymodifications.xcu && \
    echo '<item oor:path="/org.openoffice.Setup/L10N"><prop oor:name="ooLocale" oor:op="fuse"><value>zh-CN</value></prop></item>' >> /mzit/.config/libreoffice/registrymodifications.xcu && \
    echo '</oor:items>' >> /mzit/.config/libreoffice/registrymodifications.xcu

# 复制应用JAR文件
COPY target/file-conver-*.jar app.jar

# 复制应用配置文件
COPY src/main/resources/application.yml application.yml

# 创建临时目录
RUN mkdir -p /mzit/temp && chmod 777 /mzit/temp

# 创建日志目录
RUN mkdir -p /mzit/logs && chmod 777 /mzit/logs

# 设置LibreOffice环境变量
ENV LIBREOFFICE_PATH=/usr/bin/libreoffice \
    HOME=/mzit \
    USER=root

# 暴露端口
EXPOSE 8080

# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
    CMD curl -f http://localhost:8080/api/status || exit 1

# 启动应用
CMD ["java", "-Djava.awt.headless=true", "-Dfile.encoding=UTF-8", "-Dsun.jnu.encoding=UTF-8", "-Duser.timezone=Asia/Shanghai", "-jar", "app.jar"]